#!/bin/sh
#
# Copyright (C) 2023  Etersoft
# Copyright (C) 2023  Vitaly Lipatov <lav@etersoft.ru>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#

epm_list_help()
{
    cat <<EOF
epm list - list packages
Usage: epm list [options] [package]

Options:
  --available           list only available packages
  --installed           list only installed packages
  --upgradable          list only upgradable packages
EOF
#  --all                 list all packages (default)
}

epm_list()
{
    local option="$1"

    if [ -z "$1" ] ; then
        # locally installed packages by default
        load_helper epm-packages
        epm_packages "$@"
        return
    fi

    shift

    case "$option" in
        -h|--help)
            epm_list_help
            return
            ;;
        #--all)
        #    # TODO: exclude locally installed?
        #    epm_list_available
        #    return
        #    ;;
        --available)
            # TODO: exclude locally installed?
            load_helper epm-list_available
            epm_list_available "$@"
            return
            ;;
        --installed)
            load_helper epm-packages
            epm_packages "$@"
            return
            ;;
        --upgradable)
            # TODO: exclude locally installed?
            load_helper epm-list_upgradable
            epm_list_upgradable "$@"
            return
            ;;
        *)
            fatal "Unknown option $option, use epm list --help to get info"
            ;;
    esac

    epm_list_help >&2
    fatal "Run with appropriate option"
}
